import { fileURLToPath, URL } from 'node:url'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

import Components from 'unplugin-vue-components/vite' // 自动导入函数
import { VantResolver } from 'unplugin-vue-components/resolvers' // vant组件库的解析器
import path from 'path' // path.resolve('a','b')  a/b

import { createHtmlPlugin } from 'vite-plugin-html'
import { viteMockServe } from 'vite-plugin-mock'

// https://vitejs.dev/config/
export default defineConfig({
  // 配置vite插件
  plugins: [
    viteMockServe({
      mockPath: './src/mock' // 指定mock文件的路径
    }), // 支持mock模拟假数据
    createHtmlPlugin(), // 支出html模板语法
    // 解析.vue文件的
    vue(),
    // 自动导入的插件，解析器可以是 vant element and-vue
    Components({
      dts: false,
      // 原因：Toast Confirm 这类组件的样式还是需要单独引入，样式全局引入了，关闭自动引入
      resolvers: [VantResolver({ importStyle: false })]
    }),

    // 生成精灵图
    createSvgIconsPlugin({
      // 指定将来图标的文件夹目录
      // eslint-disable-next-line no-undef
      iconDirs: [path.resolve(process.cwd(), 'src/icons')]
    })
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  base: '/'
})
